// pages/detail/detail.js
const api = require("../../api/index")

Page({

    /**
     * 页面的初始数据
     */
    data: {
        isCollect: false,
        detail: {},
        collect: {
            productId: "",
            userId: 0
        },
        collectList: []
    },
    async addCart() {
        const { id } = wx.getStorageSync('token')
        if(id) {
            const item = this.data.detail
            const product = {
                productCount: 1,
                productDesc: item.dscp,
                productId: item.id,
                productImage: item.image,
                productName: item.name,
                productPrice: item.price,
                productProduction: item.production,
                userId: id
            }
            await api.cart.addcart(product)
            wx.showToast({
                title: '加入购物车',
                type: 'success'
              })
        } else {
            wx.navigateTo({
                url: '/pages/login/login',
            })
        }
    },
    async getCollectList() {
        const { id } = wx.getStorageSync('token')
        const collectList = await api.profile.collectList(id)
        this.setData({ collectList })
        const key = collectList.findIndex(item => item.productId === parseInt(this.data.collect.productId))
        key === -1 ? this.setData({ isCollect: false }) : this.setData({ isCollect: true })
    },
    async addCollect() {
        if(this.data.isCollect) {
            const { id } = this.data.collectList.find(item => item.productId === parseInt(this.data.collect.productId))
            await api.profile.removeCollect(id)
        } else {
            await api.detail.addCollect(this.data.collect)
        } 
        this.getCollectList()
    },
    /**
     * 生命周期函数--监听页面加载
     */
    async onLoad(options) {
        const cid = options.cid
        const detail = await api.detail.getDetail(cid)
        const { id } = wx.getStorageSync('token')
        this.setData({ detail, 'collect.productId': detail.id, 'collect.userId': parseInt(id) })
        this.getCollectList()
        await api.detail.productHistory(this.data.collect)
    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady() {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow() {

    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide() {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload() {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh() {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom() {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage() {

    }
})